/****************************************************************************
                Университет:    Санкт-Петербургский Политехнический Университет
                Кафедра:        Компьютерные системы и программные технологии
                Аспирант:       Быков Илья Иванович
                Программа:      Расчет коэффициентов распределения
                Модуль:         command.h
                Назначение:
****************************************************************************/

#ifndef COMMAND_H
#define COMMAND_H

#include <QUndoCommand>

class Document;

/* Базовый класс для всех комманд. */
class Command : public QUndoCommand
{
public:
    enum CommandId {
        AddNodeCommandId,
        RemoveNodeCommandId,
        MoveNodeCommandId,
        ResizeNodeCommandId,
        SetNodeColorCommandId,
        AddEdgeCommandId,
        RemoveEdgeCommandId,
        ChangeBalCommandId,
        AddEdgeSettingsCommandId
    };
        
    int id() const;
    Document *document() const;

protected:
    Command(int id, Document *m_doc, QUndoCommand *parent = 0);

private:
    int m_id;
    Document *m_doc;
};

#endif // COMMAND_H
